package com.itheima.manager.contrller;

import com.itheima.manager.domain.DitieZhan;
import com.itheima.manager.service.DiTieService;

import java.util.ArrayList;
import java.util.Scanner;

public class DiTieController {
    private DiTieService dts = new DiTieService();
    private Scanner sc = new Scanner(System.in);

    // 开启学生管理系统, 并展示学生管理系统菜单
    public final void start() {
        while (true) {
            System.out.println("--------欢迎来到 <北京地铁> 管理系统--------");
            System.out.println("请输入您的选择: 1.查看地铁站  2.添加地铁站 3.删除地铁站 4.修改地铁站 5.退出");
            String choice = sc.next();
            switch (choice) {
                case "1":
                    selectDiTieZhan();
                    break;
                case "2":
                    addDiTieZhan();
                    break;
                case "3":
                    deleteDiTieZhan();
                    break;
                case "4":
                    updateDiTieZhan();
                    break;
                case "5":
                    System.out.println("感谢您使用北京地铁管理系统, 再见!");
                    return;
                default:
                    System.out.println("您的输入有误, 请重新输入");
                    break;
            }
        }
    }

    //修改地铁站信息
    private void updateDiTieZhan() {
        String id=inputDiTieId(true);
        DitieZhan ditieZhan = addDtInfo(id);
        dts.updateDiTieZhan(id,ditieZhan);
        System.out.println("======修改地铁信息成功======");
    }

    //删除地铁站信息
    private void deleteDiTieZhan() {
        String id=inputDiTieId(true);
        dts.deleteDiTieZhan(id);
        System.out.println("======删除地铁信息成功======");
    }

    //的添加地铁站操作
    private void addDiTieZhan() {
        String id = inputDiTieId(false);
        DitieZhan dt = addDtInfo(id);
        boolean bl = dts.addDiTieZhan(dt);
        if (bl) {
            System.out.println("===增加地铁信息成功===");
        } else {
            System.out.println("===增加地铁信息失败===");
        }
    }

    //遍历找到正确的地铁编号
    private DitieZhan addDtInfo(String id) {
        System.out.println("请输入地铁名称:");
        String name = sc.next();
        System.out.println("请输入地铁路线:");
        String line = sc.next();
        return new DitieZhan(id, name, line);
    }

    //获取管理人员输入的地铁站信息,包括地铁站编号，地铁站名称，所属路线
    private String inputDiTieId(boolean flag) {
        String id;
        System.out.println("请输入id:    ");
        while (true) {
            id = sc.next();
            boolean exist = dts.isExist(id);
            if (exist == flag) {
                break;
            } else {
                System.out.println("请重新输入id:    ");
            }
        }
        return id;
    }

    //查看地铁站操作
    private void selectDiTieZhan() {
        ArrayList<DitieZhan> dtlist = dts.selectDiTieZhan();
        if (dtlist == null) {
            System.out.println("====暂时还没有地铁信息,请添加后再查找====");
        } else {
            System.out.println("\t地铁站编号\t地铁名称\t所属路线");
            dtlist.forEach(dt -> System.out.println(dt.show()));
        }
    }


}
